/**
 * 1.字符长度限制 
 * @param obj
 * @param len
 * @returns {Boolean}
 */
function testLength(obj,len) {
	if (obj.value.length > len) {
		obj.focus();
		return false;
	}
}


/**
 * 5.验证邮箱(正则,函数)
 * @param strEmail
 * @returns {Boolean}
 */
function isEmail(strEmail) {
	if (strEmail
			.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
		return true;
	else
		alert("格式错误!");
}

/**
 * // 判断是否为空
 * @param obj
 */
function checkNull(obj) {
	if (obj.value.replace(/^ +| +$/g, '') == '')
		alert('不能为空!');
}

/**
 * 验证是否是数字电话,只能是数字和- \d{3}-\d{8}|\d{4}-\d{7}
 * @param elem
 * @returns {Boolean}
 */
function istel(elem) {
	var str = elem.value;
	var oneDecimal = false;
	var oneChar = 0;
	str = str.toString();
	for ( var i = 0; i < str.length; i++) {
		oneChar = str.charAt(i).charCodeAt(0);
		if (oneChar == 45) {
			continue;
		}
		if (oneChar < 48 || oneChar > 57) {
			alert("此项只能输入数字和'-'号.");
			return false;
		}
	}
	return true;
}

/**
 * 校验普通电话、传真号码：可以“+”开头，除数字外，可含有“-”
 * @param s
 * @returns {Boolean}
 */
function isTel(s) {
	// var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
	var patrn = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	if (!patrn.exec(s))
		return false
	return true
}

/**
 * 
 * 要求： (1)电话号码由数字、"("、")"和"-"构成 (2)电话号码为3到8位 (3)如果电话号码中包含有区号，那么区号为三位或四位
 * (4)区号用"("、")"或"-"和其他部分隔开 (5)移动电话号码为11或12位，如果为12位,那么第一位为0
 * (6)11位移动电话号码的第一位和第二位为"13" (7)12位移动电话号码的第二位和第三位为"13" 根据这几条规则，可以与出以下正则表达式：
 * (^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)
 * @param s
 */
function PhoneCheck(s) {
	var str = s;
	var reg = /(^[0-9]{3,4}\-[0-9]{3,8}$)|(^[0-9]{3,8}$)|(^\([0-9]{3,4}\)[0-9]{3,8}$)|(^0{0,1}13[0-9]{9}$)/
	alert(reg.test(str));
}

/**
 * 当opt2为1时检查num是否是负数//当opt1为1时检查num是否是小数//返回1是正确的，0是错误的
 * 
 * @param num
 * @param opt1
 * @param opt2
 * @returns {Boolean}
 */
function chknbr(num, opt1, opt2) {
	var i = num.length;
	var staus;
	// staus用于记录.的个数
	status = 0;
	if ((opt2 != 1) && (num.charAt(0) == '-')) {
		alert("You have enter a invalid number.");
		return false;
	}
	// 当最后一位为.时出错
	if (num.charAt(i - 1) == '.') {
		alert("You have enter a invalid number.");
		return false;
	}
	for (j = 0; j < i; j++) {
		if (num.charAt(j) == '.') {
			status++;
		}
		if (status > 1) {
			alert("You have enter a invalid number.");
			return false;
		}
		if (num.charAt(j) < '0' || num.charAt(j) > '9') {
			if (((opt1 == 0) || (num.charAt(j) != '.')) && (j != 0)) {
				alert("You have enter a invalid number.");
				return false;
			}
		}
	}
	return true;
}

/**
 * 11.检查是否数字或字母组成的串
 */
function testNumStr(str) {
	var strSource = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var ch;
	var i;
	var temp;
	for (i = 0; i <= (str.length - 1); i++) {
		ch = str.charAt(i);
		temp = strSource.indexOf(ch);
		if (temp == -1) {
			alert("格式不正确!");
			return false;
		}
	}
	if (strSource.indexOf(ch) == -1) {
		alert("格式不正确!");
		return false;
	} else {
		return true;
	}
}

/**
 *
 * 12. 数字验证 (1)正整数验证^[1-9]\d*$, (2)负整数验证^-[1-9]\d*$, (3)整数^-?[1-9]\d*$,
 * (4)非负整数^[1-9]\d*|0$, (5)非正正数^-[1-9]\d*|0$,
 * (6)浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$
 * @param str
 * @returns {Boolean}
 */
function testPosInteger(str) {
	if (/^[1-9]\d*$/.test(str)) {
		//alert("格式不能!");
		return false;
	} else {
		return true;
	}
}

/**
 * 负整数
 * @param str
 * @returns {Boolean}
 */
function testNegInteger(str) {
	if (/^-[1-9]\d*$/.test(str)) {
		//alert("格式不能!");
		return false;
	} else {
		return true;
	}
}


function testInteger(str){
	if (/^-?[1-9]\d*$/.test(str)) {
		//alert("格式不能!");
		return false;
	} else {
		return true;
	}
}


/**
 * 身份证 正则:\d{15}|\d{18}
 * 
 * @param s
 * @returns {Boolean}
 */
function checkIdCard(s) {
	var patrn = /^\d{15}|\d{18}$/;
	if (!patrn.exec(s))
		return false
	return true
}

/**
 * 15.邮政编码 正则:[1-9]\d{5}(?!\d)
 * 
 * @param s
 */
function isPostalCode(s) {
	// var patrn=/^[a-zA-Z0-9]{3,12}$/;
	var patrn = /^[a-zA-Z0-9 ]{3,12}$/;
	if (!patrn.exec(s))
		return false
	return true
}

/**
 * IP地址 正则:\d+\.\d+\.\d+\.\d+
 * 
 * @returns {Boolean}
 */
function checkIpAddress(ipAddr) {
	var patrn = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
    if (!patrn.exec(ipAddr))
        return false
    return true
}

/**
 * IP地址 正则:[1-9][0-9]{4,}
 * 
 * @returns {Boolean}
 */
function checkQQ(qq) {
	var patrn = /^[1-9][0-9]{4,}$/;
	if (!patrn.exec(qq))
		return false
	return true
}
/**
 * 19.是否有效的链接
 * 
 * @param url
 * @returns {Boolean}
 */
function IsURL(url) {
	var sTemp;
	var b = true;
	sTemp = url.substring(0, 7);
	sTemp = sTemp.toUpperCase();
	if ((sTemp != "HTTP://") || (url.length < 10)) {
		b = false;
	}
	return b;
}

/**
 * 校验手机号码：必须以数字开头，除数字外，可含有“-”
 * 
 * @param s
 * @returns {Boolean}
 */
function IsMobile(s) {
	var patrn = /^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
	if (!patrn.exec(s))
		return false
	return true
}

/**
 * 手机号码正则表达式验证函数
 * @param s
 * @returns {Boolean}
 */
function isMobilePhone(s) {
	if(strTel.search(/^1[3|4|5|8][0-9]\d{4,8}$/)!=-1){
		return true;
	}else{
		return false;	
	}	
}

/**
 * 25.日期时间类 短时间，形如 (13:04:06)
 * 
 * @param str
 * @returns {Boolean}
 */
function isTime(str) {
	var a = str.match(/^(\d{1,2})(:)?(\d{1,2})\2(\d{1,2})$/);
	if (a == null) {
		alert('输入的参数不是时间格式');
		return false;
	}
	if (a[1] > 24 || a[3] > 60 || a[4] > 60) {
		alert("时间格式不对");
		return false
	}
	return true;
}

/**
 * 短日期，形如 (2003-12-05)
 * 
 * @param str
 * @returns {Boolean}
 */
function strShortDateTime(str) {
	var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
	if (r == null)
		return false;
	var d = new Date(r[1], r[3] - 1, r[4]);
	return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3] && d
			.getDate() == r[4]);
}
/**
 * 长时间，形如 (2003-12-05 13:04:06)
 * 
 * @param str
 * @returns {Boolean}
 */
function strLongDateTime(str) {
	var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/;
	var r = str.match(reg);
	if (r == null)
		return false;
	var d = new Date(r[1], r[3] - 1, r[4], r[5], r[6], r[7]);
	return (d.getFullYear() == r[1] && (d.getMonth() + 1) == r[3]
			&& d.getDate() == r[4] && d.getHours() == r[5]
			&& d.getMinutes() == r[6] && d.getSeconds() == r[7]);
}
